#ifndef __BUOLA_GUI_CCOMPOSITEICON_H__
#define __BUOLA_GUI_CCOMPOSITEICON_H__

#include <buola/gui/ciconbase.h>

namespace buola { namespace gui {

///\addtogroup gui
///@{

////////////////////////////////////////////////////////////////////////////

/// composite icon

/// This specialization of CIconBase allows to combine two icons together
///
////////////////////////////////////////////////////////////////////////////

class CCompositeIcon : public CIconBase
{
protected:
//! \name constructor and destructor
//@{
    CCompositeIcon(PIcon p1,PIcon p2);
    virtual ~CCompositeIcon();
//@}

public:
    virtual bool Draw(img::CGC*,const CPoint_d&,int pSize,EStyle=NORMAL);
    virtual img::CPicture GetPixmap(int,EStyle=NORMAL);

public:
    //! gets a new composite icon
    static PIcon Get(PIcon,PIcon);

protected:
    PIcon m1;   //!< first icon
    PIcon m2;   //!< second icon

    static std::vector<CCompositeIcon*> mCompositeIcons;
};

///@}

/*namespace gui*/ } /*namespace buola*/ }

#endif
